<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>01外间距测试</title>
    <style>
        body {
            margin: 0;
        }
        .fu {
            background-color: rgba(255,255,0,0.3);
            /*可以给父元素添加此句代码,形成结界,防止父子贴边问题*/
            overflow: hidden;
        }
        .fu>div {
            width: 100px;
            height: 100px;
            background-color: rgba(0,0,255,0.6);
            border: 2px solid blue;
        }
        /*问题1:第1个子元素的上外间距 最后1个子元素的下外间距 会超出父元素的范围*/
        .z1 {
            margin-bottom: 30px;
            margin-top: 50px;
        }
        .z4 {
            margin-bottom: 50px;
        }
        /*问题2:相邻兄弟垂直方向的间距 取大值显示*/
        .z2 {
            margin-top: 50px;
        }

        .z3 {
            /*上下外间距为0 左右外间距自动计算为相等的值 这样块级元素就可以水平居中了*/
            margin: 0 auto;
        }
        span {
            border: 2px solid red;
        }
        .s2 {
            /*行内元素的左右外间距正常生效,上下外间距不要使用!*/
            margin: 50px 20px;
        }
    </style>
</head>
<body>
    <span>span1</span>
    <span class="s2">span2</span>
    <span>span3</span>
    <hr>
    <!--.fu>.z*4-->
    <div class="fu">
        <div class="z1">子元素div1</div>
        <div class="z2">子元素div2</div>
        <div class="z3">子元素div3</div>
        <div class="z4">子元素div4</div>
    </div>
</body>
</html>